コンテナとは、ホストOS上に論理的な区画(コンテナ)を作り、アプリケーションを動作させるのに必要なライブラリやアプリケーションなどを1つにまとめ、あたかも個別のサーバーのように使うことができるようにしたものです。
仮想化においては仮想マシン上でゲスト OS を起動しますが、コンテナではゲスト OS を使いません。ゲスト OS を起動せずにアプリケーションの実行環境を構築できるため、仮想化と比較してメモリや CPU のリソースを節約することができます。
アプリを実行するのに十分な独立した仮想環境を得ながら、OS関連でリソースが重複しないので、リソースが節約できます。
ホストOSのリソースを論理的に分離し、複数のコンテナで共有して使います。コンテナーはサーバー仮想化に比べオーバーヘッドが少ないため、軽量で高速に動作するのが特徴です。
コンテナ技術を使用すると、OSやディレクトリ、IPアドレスなどのシステムリソースを、個々のアプリケーションが占有しているように扱うことができます。
Dokerはコンテナの動作環境を提供するサービスを用いることで、非常に軽量なコンテナのアプリケーション実行環境を作ることができます。
Dockerの特徴としては、
OSの内部に独立したアプリケーションの実行環境=コンテナを生成することができることと、
リソース消費量が非常に少なく、1台の物理サーバーに多くのコンテナを稼働させられることです。
1つのOSを複数のコンテナで共有しています。コンテナー内で動作するプロセスを1つのグループとして管理し、グループごとにそれぞれファイルシステムやホスト名/ネットワークなどを割り当てています。グループが異なればプロセスやファイルへのアクセスができません。
このしくみを使って、コンテナを独立した空間として管理しています。
コンテナは、開発環境などのように、1台のマシンで稼働させるときは手軽に導入できます。しかしながら、マルチホストで構成されたクラスター構成で稼働させるには、コンテナの起動/停止などの操作だけでなく、ホスト間のネットワーク接続やストレージの管理、コンテナをどのホストで稼働させるかなどのスケジューリング機能が必要になります。さらに、コンテナが正常動作しているかどうかを確認するしくみも重要です。
Kubernetesは、これらの機能を備え、コンテナを統合管理できるツールです。このことをコンテナオーケストレーションツールと呼びます。
www.it-shikaku.jp
[Top] | |
[講義目次] | |
[2.05:高度なストレージ管理] | |
[2.06:コンテナ] | |
[2.06.1 コンテナの仕組み] | |
[2.06.2 Dockerコンテナとコンテナイメージの管理] | |
[2.07:ネットワーククライアントの管理] | |
[講義検索] | |
[リンク集] |